package com.et114.modules.system.dictionary;

import java.util.List;

import com.et114.core.exception.CheckException;
import com.et114.modules.system.dictionary.vo.BizOption;
import com.et114.modules.system.dictionary.vo.BizType;

/**
 * @author
 *  */
public interface IDictionaryDao {
	/**
	 * ˢ��Server ��ҵ������ֵ�Ļ���
	 * 
	 */
	public void refreshBizDictionary ( ) throws Exception;
	
	/**
	 * Ϊҵ��ʵ��ȡ������ҵ�����ѡ������
	 * 
	 * @param bizEntity
	 * @return
	 */
	public int getBizCodeDesc ( BizEntity bizEntity ) throws Exception ;
	
	/**
	 * Ϊҵ��ʵ���б�ȡ������ҵ�����ѡ������
	 * 
	 * @param bizEntityList
	 * @return
	 */
	public int getBizCodeDescInEntityList ( List bizEntityList ) throws Exception ;
	
	/**
	 * Ϊҵ��ʵ��ȡ������ҵ�����ѡ��Ȩ��
	 * 
	 * @param bizEntity
	 * @return
	 */
	public int getBizCodePower ( BizEntity bizEntity ) throws Exception ;
	
	/**
	 * Ϊҵ��ʵ���б�ȡ������ҵ�����ѡ��Ȩ��
	 * 
	 * @param bizEntityList
	 * @return
	 */
	public int getBizCodePowerInEntityList ( List bizEntityList ) throws Exception;
	
	/**
	 * ��ָ��ҵ��������������һ��ҵ�����ѡ��
	 * 
	 * @param bizEntityList
	 * @return
	 */
	public int addBizOption ( BizOption bizOption ) throws Exception ;
	
	/**
	 * ɾ��ҵ�����ѡ�����
	 * 
	 * @param bizOptionId
	 *            ҵ�����ѡ��ID
	 * @param absDel
	 *            �Ƿ��������ɾ��
	 * @return
	 */
	public int deleteBizOption ( String bizOptionId , boolean absDel ) throws Exception;
	
	/**
	 * �޸�ҵ�����ѡ�����
	 * 
	 * @param bizOptionId
	 * @return
	 */
	public int updateBizOption ( BizOption bizOption ) throws Exception ;
	
	/**
	 * ��ȡҵ�����ѡ���б�
	 * 
	 * @param bizTypeKey
	 *            ҵ������key
	 * @param status
	 *            ��־�Ƿ�ֻ��ȡ��Чҵ�����ѡ��
	 * @return ҵ�����ѡ���б�
	 */
	public List retrieveBizOptionList ( String bizTypeKey , String status ) throws Exception;
	
	/**
	 * ��ȡָ����ҵ�����ѡ��������Ӧ��ҵ�����ѡ�
	 * 
	 * @param bizOptionId
	 *            ҵ�����ѡ��ID
	 * @return
	 */
	public BizOption retrieveBizOption ( String bizOptionId ) throws Exception;
	
	/**
	 * ɾ��ָ����ҵ������
	 * 
	 * @param bizTypeId
	 *            ҵ������ID
	 * @return
	 */
	public int deleteBizType ( String bizTypeId ) throws Exception;
	
	/**
	 * ���һ��ҵ������,�޸�ָ����ҵ������
	 * 
	 * @param bizTypeId
	 * @return
	 */
	public String saveBizType ( BizType bizType ) throws Exception;
	
	
	
	public void updateBizType(  BizType bizType ) throws Exception ; 
	
	/**
	 * ��ȡ���е�ҵ�������б�
	 * 
	 * @param bizType
	 * @return
	 */
	public List retrieveBizTypeList ( ) throws Exception;
	
	
	public List retrieveBizTypeList (  BizType bizType ) throws Exception;
	
	/**
	 * ���ҵ�����ͱ����ȡָ����ҵ�����Ͷ���
	 * 
	 * @return
	 */
	public BizType retrieveBizType ( String bizTypeId ) throws Exception;
	
	/**
	 * ���BizOption����optionname�ظ��Ķ����б�
	 * 
	 * @param option
	 * @return
	 */
	public List getBizOptionRepeatList ( BizOption option ) throws Exception ;
	
	/**
	 * ���BizType����typename�ظ��Ķ���
	 * 
	 * @param type
	 * @return
	 */
	public List getBizTypeRepeatList ( BizType type ) throws Exception;
	
	public void deleteBizOptionByBizType( String bizTypeKey ) throws Exception ;
	
	public Long countBizType ( String biztypekey ) throws CheckException;
	
	public Long countBizOption ( BizOption option ) throws CheckException;
	
	public Long countBizOptionValue(BizOption option) throws CheckException;
	
	public BizType getBizTypeByKey(String bizTypeKey) throws CheckException;
}
